@using Krystalware.SlickUpload
@{
    if (ViewBag.Title.IndexOf(" - SlickUpload Samples") == -1)
    {
        ViewBag.Title += " - SlickUpload Samples";
    }
}

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head >
    <title>SlickUpload Samples</title>
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/site.css")" />
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/content/slickupload.css")" />
<!--[if lte IE 6]>
    <style type="text/css">
        a, span, b, img { behavior: url(@Url.Content("~/Content/iepngfix/iepngfix.htc")) }
    </style>
    <script type="text/javascript" src="@Url.Content("~/Content/iepngfix/iepngfix_tilebg.js")"></script>
    <script type="text/javascript">
        var _kwInit = _kwInit || [];

        _kwInit.push(function() { window.setTimeout(IEPNGFix.update, 1); });
    </script>
<![endif]-->
            @RenderSection("head", false)

</head>
<body>
    <div id="headerContainer">
        <div id="header">
            <a href="http://krystalware.com/slickupload"><img width="125" height="29" src="@Url.Content("~/Content/krystalware_small.png")" style="float:right" /></a>
            <div style="clear:none">
                <img width="48" height="48" src="@Url.Content("~/Content/SlickUpload_48x48.png")" style="vertical-align:middle;margin-right:.5em" />
                SlickUpload Samples
            </div>
        </div>
    </div>
    <div id="contentContainer">
        <div id="sidebar">
            <h2 style="margin:0;padding:0">Samples</h2>
            <p>    <strong>
@(Html.ActionLink("Slick", "Index", "slick"))    </strong> 
 &ndash; A fully skinned implementation of SlickUpload with Gmail style async file upload, multiple file selection, folder selection, and drag and drop.</p>
            <p>    <strong>
@(Html.ActionLink("Client Api", "Index", "clientapi"))    </strong> 
 &ndash; Use the SlickUpload client API to create an upload form without using the SlickUpload server side controls or helpers.</p>
            <p>    <strong>
@(Html.ActionLink("Post Processing", "Index", "postprocess"))    </strong> 
 &ndash; Implements a post processing step to process files after they are uploaded, with accompanying progress bar.</p>
            <p>    <strong>
@(Html.ActionLink("Custom FileName", "Index", "customfilename"))    </strong> 
 &ndash; Demonstrates how to pass information to the server and generate server filenames for files as they are uploaded.</p>
            <p>    <strong>
@(Html.ActionLink("Custom UploadStreamProvider", "Index", "customuploadstreamprovider"))    </strong> 
 &ndash; Demonstrates how to write a custom UploadStreamProvider to stream uploads to an arbitrary location. The example UploadStreamProvider zips files as they are uploaded.</p>
            <p>    <strong>
@(Html.ActionLink("Sql Server", "Index", "sqlserver"))    </strong> 
 &ndash; Upload directly to a SQL Server IMAGE, VARBINARY(MAX), or FILESTREAM field, streaming the file to the field with minimal memory usage.</p>
            <p>    <strong>
@(Html.ActionLink("Custom Sql Server", "Index", "customsqlserver"))    </strong> 
 &ndash; Demonstrates writing additional fields to SQL as a file is created.</p>
            <p>    <strong>
@(Html.ActionLink("Multiple", "Index", "multiple"))    </strong> 
 &ndash; How to implement multiple file selection areas on one page.</p>
            <p>    <strong>
@(Html.ActionLink("Amazon S3", "Index", "s3"))    </strong> 
 &ndash; Use the SlickUpload S3 provider to implement streaming upload to Amazon S3.</p>
            <p>    <strong>
@(Html.ActionLink("Validation", "Index", "validation"))    </strong> 
 &ndash; Demonstrates SlickUpload validation. Covers file selection, maximum selected file limits, maximum file size limits, file type validation, and requiring file selection.</p>
            
            <h2 style="margin-bottom:0;padding-bottom:0">Resources</h2>
            <p><strong><a href="http://krystalware.com/slickupload/documentation">Documentation</a></strong> &ndash; Read the SlickUpload documentation.</p>
            <p style="margin-bottom:0"><strong><a href="http://krystalware.com/slickupload/forum">Forums</a></strong> &ndash; Ask or answer questions in the SlickUpload support forum.</p>
        </div>
        <div id="content">
            <h1 class="title">@(ViewBag.Title.Substring(0, ViewBag.Title.IndexOf(" -"))) Sample</h1>
                    @RenderBody()

            <div style="border:1px solid #ccc;padding:.5em">
                <strong>NOTE:</strong> the maximum allowed request size for this sample is <strong>
@(SlickUploadContext.Config.UploadProfiles["default"].MaxRequestLength / 1024)                MB</strong>. If you attempt to upload files larger than this,
                you will recieve a oversized upload error which SlickUpload will handle gracefully. This is controlled by the maxRequestLength attribute of current uploadProfile
                in the web.config file.
            </div>
                    @RenderSection("configuration", false)

            <h2>Description</h2>
                    @RenderSection("description", false)

        </div>
    </div>
    <div id="footer">
        &copy; @DateTime.Now.Year Krystalware
    </div>
</body>
</html>